package com.flowplan.todo.dto;

import com.flowplan.entity.enums.Priority;
import com.flowplan.entity.enums.TodoStatus;
import com.flowplan.entity.enums.TodoType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 待办响应DTO
 * 
 * @author FlowPlan Team
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TodoResponse {
    
    /**
     * 待办ID
     */
    private Long id;
    
    /**
     * 关联项目ID
     */
    private Long projectId;
    
    /**
     * 项目名称
     */
    private String projectName;
    
    /**
     * 待办标题
     */
    private String title;
    
    /**
     * 待办描述
     */
    private String description;
    
    /**
     * 待办状态
     */
    private TodoStatus status;
    
    /**
     * 优先级
     */
    private Priority priority;
    
    /**
     * 待办类型
     */
    private TodoType todoType;
    
    /**
     * 负责人ID
     */
    private Long assigneeId;
    
    /**
     * 负责人姓名
     */
    private String assigneeName;
    
    /**
     * 报告人ID
     */
    private Long reporterId;
    
    /**
     * 报告人姓名
     */
    private String reporterName;
    
    /**
     * 到期时间
     */
    private LocalDateTime dueDate;
    
    /**
     * 预估工时
     */
    private BigDecimal estimatedHours;
    
    /**
     * 实际工时
     */
    private BigDecimal actualHours;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    
    /**
     * 是否过期
     */
    private Boolean isOverdue;
    
    /**
     * 完成进度(0-100)
     */
    private Integer progress;
}